home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Python 1.3.3 / Python 133 SRC / Demo / embed / demo.c next >
C/C++ Source or Header  |  1996-03-12  |  1KB  |  48 lines

  1. /* Example of embedding Python in another program */
  2.  
  3. #include "Python.h"
  4.  
  5. static char *argv0;
  6.  
  7. main(argc, argv)
  8.     int argc;
  9.     char **argv;
  10. {
  11.     /* Save a copy of argv0 */
  12.     argv0 = argv[0];
  13.  
  14.     /* Initialize the Python interpreter.  Required. */
  15.     Py_Initialize();
  16.  
  17.     /* Define sys.argv.  It is up to the application if you
  18.        want this; you can also let it undefined (since the Python 
  19.        code is generally not a main program it has no business
  20.        touching sys.argv...) */
  21.     PySys_SetArgv(argc, argv);
  22.  
  23.     /* Do some application specific code */
  24.     printf("Hello, brave new world\n\n");
  25.  
  26.     /* Execute some Python statements (in module __main__) */
  27.     PyRun_SimpleString("import sys\n");
  28.     PyRun_SimpleString("print sys.builtin_module_names\n");
  29.     PyRun_SimpleString("print sys.argv\n");
  30.  
  31.     /* Note that you can call any public function of the Python
  32.        interpreter here, e.g. call_object(). */
  33.  
  34.     /* Some more application specific code */
  35.     printf("\nGoodbye, cruel world\n");
  36.  
  37.     /* Exit, cleaning up the interpreter */
  38.     Py_Exit(0);
  39.     /*NOTREACHED*/
  40. }
  41.  
  42. /* This function is called by the interpreter to get its own name */
  43. char *
  44. getprogramname()
  45. {
  46.     return argv0;
  47. }
  48.